/**
 * vite提取模块内容
 */
const importAPI = import.meta.glob("@/apis/**/*.ts", { eager: true, import: 'default' });

const modules: any = {};

/**
 * 获取给定字符串中的文件名
 * @param str 
 * @example '/src/apis/user.ts' 
 * 'user'
 */
const HelpGetFileName = (str: string) => {
  if (str.length === 0) {
    return '';
  }
  // ['', 'src', 'apis', 'user.ts']
  const splitArr = str.split('/');
  // 'user.ts'
  const file = splitArr[splitArr.length-1];
  // 'user'
  const filename = file.split('.')[0];
  return filename;
}

for (const filePath in importAPI) {
  // 1.取文件路径中的文件名
  const filename = HelpGetFileName(filePath);
  // 2.判断是否是提取文件
  if (filename === 'index') {
    continue;
  }
  // 3.判断是否是本身的属性
  if (Object.prototype.hasOwnProperty.call(importAPI, filePath)) {
    // 4.添加模块名称（方便查找调用每个模块下的方法）
    const newModule = {
      [filename]: importAPI[filePath]
    };
    // 5.合并模块
    Object.assign(modules, newModule);
  }
}

export default modules;